From 417eb0ad9c3d32b9398d0b27e55ea48b8e399732 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 30 Apr 2016 22:39:26 -0400 Subject: [PATCH] Use a better hash for arcs --- gtk/gtkroundedbox.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/gtk/gtkroundedbox.c b/gtk/gtkroundedbox.c index 67aed7a786..a6d9019b4d 100644 --- a/gtk/gtkroundedbox.c +++ b/gtk/gtkroundedbox.c @@ -228,10 +228,25 @@ typedef struct { gboolean negative; } Arc; +static inline guint +mem_hash (gconstpointer v, gint len) +{ + const signed char *p; + const signed char *end; + guint32 h = 5381; + + p = v; + end = p + len; + for (; p < end; p++) + h = (h << 5) + h + *p; + + return h; +} + static guint arc_path_hash (Arc *arc) { - return g_double_hash (&arc->angle1) ^ g_double_hash (&arc->angle2) ^ arc->negative; + return mem_hash ((gconstpointer)arc, sizeof (Arc)); } static gboolean -- 2.30.2